home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 147
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin
/
fdimg
/
oh!.2hd
/
OH!DEN_B.LZH
/
TOOLS
/
CALEMU
/
TNCALE__.C
next >
Wrap
Text File
|
1995-03-20
|
3KB
|
154 lines
#include <TNB.h>
extern int InpESC; //ESCフラグ
extern UNchar *InpChPt; //チェック開始ポインタ ('%'の場所)
extern UNchar *InpPt; //管理ポインタ
extern UNchar *InpBuf,*InpBuf_E;
UNchar *ICP=0; //チェック開始ポインタ ('%'の場所)
#define strlen(SR) \
({ char *_p = (SR);int _l = 0; \
while (*_p ++) _l++; \
(_l); \
})
/*--- 各ルーチン ---*/
/*::::::: [?] ::::::::
*------------タブレット情報
:::::::::::::::::::::*/
void CmHatena()
{
;
//MakeTable();
}
/*::::::: [VS] ::::::::
*--------------- サイズコマンド タブレットの仕様
* 10byte [別表]
:::::::::::::::::::::*/
void CmVS()
{
extern UNchar AFTMAX;
OutData(10,&AFTMAX);
}
/*::::::: [__B] ::::::::
*--------------- メニューストリップのブロックNO.をチェックするコマンド
* 2byte [!],ブロックNO.+0x20
:::::::::::::::::::::*/
void Cm__B()
{
static UNchar ss[2]={" "};
//ss[1]='!'+ボタンNo.
OutData(2,ss);
}
/*::::::: [__V] ::::::::
*--------------- ファームウエアのチェックコマンド
* 26byte [70170???] (Drawing Slateの場合)
:::::::::::::::::::::*/
void Cm__V()
{
static UNchar ss[26]={"70170 "};
OutData(26,ss);
}
/*::::::: [C] ::::::::
*--------------- RS232c設定
:::::::::::::::::::::*/
void CmC()
{
int j;
for(j=0;j<5;j++)
ChrRead();/* ICP++ */
}
/*-------------------------------------------------------------------*/
struct {
char *syn; //コマンド
void (*sub)();
} jp[]={
{"?", CmHatena},
{"__V", Cm__V},
{"__B", Cm__B},
{"VS", CmVS},
{"C", CmC}, //ESC+%Cxxxは 文字数決まり
0,0
};
void foo()
{
/*
extern int InpESC; //ESCフラグ
extern UNchar *InpChPt; //チェック開始ポインタ ('%'の場所)
extern UNchar *InpPt; //管理ポインタ
extern UNchar *InpBuf,*InpBuf_E;
*/
int i,j,m,n,l;
UNchar *s,*d,*ss,*c;
ICP=InpChPt; //'%'か'@'の場所
for(;;){
i=*ICP;
if ( i=='?' ){
;
} elif ( i=='%' || i=='@' ){
ChrRead();/* ICP++ */
} else {
break; //えらー||終了
}
ss=ICP;
for(l=0;;l++){
s=ss;
if ( (c=jp[l].syn)==0 )
break;
i=strlen(c); //inline
for(j=0;j<i;j++)
if ( *s++ != *c++ )
break;
if ( j<i ){
/*コマンド処理無し*/
;
} else {
for(j=0;j<i;j++)
ChrRead();/* ICP++ */
jp[l].sub();
break;
}
}
NextCom();
}
}
/********次のコマンドまで(CR|@|0) pointer inc ********/
void NextCom()
{
int i;
if ( *ICP==0 || *ICP==0xD || *ICP=='@' || *ICP=='?' )
return;
ChrRead();/* ICP++ */
for(;;){
if ( *ICP==0 || *ICP==0xD || *ICP=='@' || *ICP=='?' )
return;
ChrRead();/* ICP++ */
}
}
/********数値リード pointer inc ********/
int NunRead()
{
int i,r;
r=0;
for(;;){
i=*ICP;
if ( i<'0' || i>'9' )
break;
r=r*10+(i-'0');
ChrRead();/* ICP++ */
}
return(r);
}
/********データリード pointer inc ***********/
void ChrRead()
{
int i;
i=*ICP++;
if ( ICP==InpBuf_E )
ICP=InpBuf;
}